home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / BibTeX / BibTeX.ReadMe < prev    next >
Text File  |  1997-02-14  |  20KB  |  424 lines

  1. # ###################################################################
  2. #  FILE: "BibTeX.ReadMe"
  3. #                                    created: 4/2/96 {6:50:21 pm} 
  4. #                                last update: 14/2/97 {10:38:42 am} 
  5. #  Author: Vince Darley
  6. #  E-mail: <mailto:darley@fas.harvard.edu>
  7. #    mail: Division of Applied Sciences, Harvard University
  8. #          Oxford Street, Cambridge MA 02138, USA
  9. #     www: <http://www.fas.harvard.edu/~darley/>
  10. #  
  11. #  Mac port copyright (C) 1996 Vince Darley.
  12. #
  13. #  Freely distributable, please report bugs (and fixes) to
  14. #  the author.
  15. #
  16. # ###################################################################
  17.  
  18. This is BibTeX (fat)
  19. ====================
  20.  
  21. Contents:
  22.  
  23.     (i)     Description of BibTeX's function and purpose.
  24.     (ii)     Feature list for this version of BibTeX for MacOS.
  25.     (iii)     Using BibTeX with the editor 'Alpha'
  26.     (iv)      Apple-events and BibTeX
  27.     (v)      Technical details, compilation, to-do's,...
  28.     (vi)    Version history.
  29.  
  30. BibTeX is the bibliography handling tool related to the TeX/LaTeX 
  31. typesetting system (available on almost all conceivable OS platforms).  
  32. When a document is typeset with LaTeX, an auxiliary file (with extension 
  33. '.aux') is generated.  This auxiliary file contains, amongst other things, 
  34. a list of references (to books, articles, research reports, web-url's,...)  
  35. cited in the original document.  BibTeX takes this list, together with the 
  36. name of a style file (extension '.bst') and a list of bibliography 
  37. databases (extension '.bib') which are also given in the auxiliary file, 
  38. and produces a wonderfully formatted list of references which the LaTeX 
  39. system subsequently (and automatically) appends to your typeset document.
  40.  
  41. Hence BibTeX is really not at all useful without TeX/LaTeX (there are 
  42. several freeware/shareware/commercial versions for the MacOS: OzTeX, 
  43. CMacTeX, DirecTeX Pro, Textures).  In fact this port of BibTeX is now 
  44. distributed with OzTeX 2.0 or newer (although the actual version shipping 
  45. with OzTeX can lag behind the latest by a release or two).  It is useful 
  46. to have a good text editor which knows about the particular format of LaTeX 
  47. documents: on the Mac, the editor Alpha is indispensible in this regard, 
  48. both for editing and for its apple-event communication with the various 
  49. parts of a LaTeX system.
  50.  
  51. For those who think this sounds a bit too complicated, the benefits in 
  52. terms of quality of output (both textual and mathematical) and automatic 
  53. generation of all manner of numbering schemes (figures, equations, 
  54. sections), and document parts (table of contents, index, bibliography), 
  55. together with cross-platform availability, mean that many people consider 
  56. it the _best_ current system for producing quality documents.
  57.  
  58. Here are some links for further information:
  59.  
  60. •    Mathematical relevance: <http://e-math.ams.org/>
  61. •    General TeX documentation: <http://www.cl.cam.ac.uk/TeXdoc/TeXdocs.html>
  62. •    Archive of LaTeX documenation: <http://www.loria.fr/tex/english/index.html>
  63. •    More LaTeX links: <http://molscat.giss.nasa.gov/LaTeX/externals.html>
  64. •    The editor 'Alpha': <http://www.cs.umd.edu/~keleher/alpha.html>
  65. •    Various TeX-related links: <http://www.bluesky.com/TeXlinks>
  66. •    CMacTeX: <http://www.math.tamu.edu/~tkiffe/cmactex.html>
  67. •    OzTeX: <http://www.kagi.com/authors/akt/oztex.html>
  68. •    Textures: <http://www.bluesky.com/>
  69. •    Archive of all TeX related material: <http://jasper.ora.com/ctan.html>
  70.  
  71. Many thanks to Alun Carr, Andy Amann, Richard Chang, Jacques Distler, and 
  72. others for helping to track down the bugs my port of BibTeX has had, and 
  73. for suggestions on how to improve it.
  74.  
  75. ========================================================================
  76.  
  77. BibTeX version 1.1.6
  78.  
  79. It has no known bugs, however, use at your own risk; there is no 
  80. warranty....  
  81.  
  82. Feature list: 
  83.  
  84. •    Basic features
  85.    -  Processes .aux files
  86.    -  Examine new or old log files and cmd-click to jump to errors, 
  87.       warnings, etc. in your editor.
  88.    -  Very fast (now more than 10 times faster!).
  89.    -  Friendly to other applications (actually calls WaitNextEvent);
  90.    -  Fat binary; runs on PPC or 68k machines;
  91.    -  Copes with both Unix and Mac standard eol characters.
  92.    -  Internet Config aware
  93.  
  94. •    TeX details:
  95.    -  Switchable between 'big' and 'small' modes.  The 'big' mode increases
  96.       the size of biobiography resources such as the number of strings allowed.
  97.       This should let you use 'Camel' the up-and-coming bibliography stuff for
  98.       LaTeX2e;
  99.    -  Search path (for .bib, .bst files) is as follows: (1) The two paths 
  100.       you set in the options dialog (2) the "BibTeX inputs" folder, 
  101.       (3) the location of the '.aux' file being processed.  This search 
  102.       path is used for both .bst and .bib files, although you can of course 
  103.       keep them in separate directories if you like;
  104.    -  Source code available;
  105.  
  106. •   Interface details:
  107.    -  Supports high-level apple events etc. so you can drag a '.aux' file (or 
  108.       several) onto it for processing, or send it an odoc event from Alpha...
  109.    -  You can command-click on warnings, errors and filenames in
  110.       the log window to leap to the correct file, line, error position
  111.       etc. in your favorite editor.  Read the section 'Apple-events and
  112.       BibTeX' for more details.  
  113.    -  Links from the about box to the BibTeX web page, so you can check
  114.       for upgrades.
  115.    -  If available, it uses Internet Config for file types of the .blg, .bbl 
  116.       files it creates.  If you make BibTeX ('Vbib') the creator of
  117.       .blg files, you can double click them to open them in the log window.
  118.    -  Balloon help is available for all dialog box items.
  119.    
  120.    
  121. This version of BibTeX is totally free.  If you like it, feel free to
  122. send email, postcards, cash, registrations to shareware you've written,...
  123. but there is no obligation.
  124.  
  125. Note that the application's partition is generous at 400k by default.  I 
  126. think it should work with 390k on 680x0 machines, and 300k on PPC machines, 
  127. so you could lower that size.
  128.  
  129. Things to do after installation:
  130.  
  131. -    Open Internet Config and set the type/creator of '.blg' files to be the 
  132.     BibTeX application.  Then you can double click to open them in BibTeX.
  133.     NB. For cmd-clicking to work, you must have Internet Config installed.
  134.     
  135. -    Download Alpha if you don't have it
  136.     
  137. -    Install the Alpha-communication scripts (read "bibEngine.tcl" 
  138.     for details).
  139.     
  140. -    Download "Vince's Additions" to make your Alpha/BibTeX/LaTeX experience 
  141.     even better!
  142.  
  143. ========================================================================
  144.  
  145. Using BibTeX with Alpha
  146.  
  147. As well as the scripts which allow command clicking in the log window to 
  148. send Alpha to the correct file/line/entry/error/...  there are other 
  149. features of Alpha which will make editing LaTeX documents a more pleasant 
  150. task.  First of all there is the TeX mode for Alpha written by Tom Scavo 
  151. which is great.  Second, I've written a package of add-ons for Alpha, 
  152. called "Vince's Additions".  It provides a large number of improvements to 
  153. TeX mode, including 'completions'.  This allows you to type something 
  154. short, hit <cmd-Tab> and have Alpha extend what you typed into something 
  155. more useful.  The types of things which can be completed range from: words, 
  156. TeX-commands, environments ('\begin' is expanded into an entire 
  157. environment), references ('\ref{my-long-r' is expanded into the name of a 
  158. nearby '\label'), and even citations: '\cite{Smit' will be expanded into
  159. the correct bibliography entry which begins 'Smit'.  If multiply entries
  160. match, then you are presented with a list of matches, which also contains
  161. the title of each match, so you can easily select the correct one, without 
  162. having to bother opening you bibliography file at all.  You can download
  163. this package either from Alpha's web site, or from my own 'Downloads' page,
  164. which usually contains a more recent version.
  165.  
  166. If you don't have or use Alpha, download it immediately!  Make sure you
  167. pay the shareware fee.
  168.  
  169. ========================================================================
  170.  
  171. Apple-Events and BibTeX
  172.  
  173. BibTeX can be triggered to process '.aux' files by being sent a standard 
  174. 'odoc' event.  Versions of Alpha newer than 6.2 will do this without any 
  175. configuration on your part.  If you're using an old version of Alpha (pre 
  176. 6.2), download a new version (see the hyperlinks above); (Also have a look 
  177. at my package "Vince's Additions" which contains some useful bibliography 
  178. conversion tools).  If you don't have Alpha, download it immediately; it's
  179. easily the best editor for TeX, LaTeX, C, C++ etc. (IMHO).
  180.  
  181. As of version 1.1.4, command-clicking in the log window will now send GURL 
  182. 'bibresult' events.  To make use of these, open Internet Config, select 
  183. 'helpers' and 'add' a helper for 'bibresult', and select as helper your 
  184. editor.  Of course your editor needs to be able to receive and interpret 
  185. GURL bibresults.  I've enclosed some procedures for Alpha which do this, 
  186. but if you use BBEdit/TeXtures or something else, you're currently on your 
  187. own.
  188.  
  189. The format of the 'bibresult' GURL event is as follows:
  190.  
  191.     bibresult:FULLFILENAME:MESSAGE
  192.  
  193. where FULLFILENAME is a full path description to the base '.aux' file or
  194. 'Unknown', and MESSAGE is any of the following:
  195.  
  196.     The top-level auxiliary file: FILENAME.aux
  197.     A level-X auxiliary file: FILENAME.aux
  198.     Warning--I didn't find a database entry for "ENTRY"
  199.     Database file #X: FILENAME.bib
  200.     Warning--WARNING ENTRY
  201.     The style file: FILENAME.bst
  202.     ERROR---line LINENUM of file FILENAME a 'UP-TO-ERROR' at POSITION
  203.  
  204. where X is an integer; FILENAME is a just the name, with no path given;
  205. ENTRY is a citation key such as 'Darley1996'; WARNING is a standard
  206. BibTeX warning (such as 'empty title in'); ERROR is a standard BibTeX
  207. error (such as 'Repeated entry'); LINENUM is the line number of an
  208. error; POSITION is the character position in that line at which the
  209. error was detected; UP-TO-ERROR is the string of characters from the 
  210. beginning of the line to the start of the error, with braces {} replaced 
  211. by ‘’ because of some IC/AE problem.
  212.  
  213. The Tcl procedures I've written for Alpha interpret these messages and take 
  214. the appropriate action: opening a file; finding and highlighting an error; 
  215. adding a '.bib' file to the \bibliography environment; making a new entry 
  216. in an existing '.bib' file,… To use these scripts, read the file 
  217. 'bibEngine.tcl' which gives installation instructions.
  218.  
  219. Problems/Bugs:
  220.  
  221. Since BibTeX sends actual line numbers and positions, if you're correcting 
  222. a lot of errors/warnings, these line number can become out of date.  The 
  223. receiving scripts are designed to alleviate this problem (they search 
  224. locally for something matching the error), but with heavy editing, such 
  225. problems are not completely avoidable.
  226.  
  227. ========================================================================
  228.  
  229. Technical Stuff:
  230.  
  231. To Do:
  232.  
  233. •    Write to .blg and .bbl files asynchronously (actually not that useful).
  234. •    Some minor code tidying.
  235. •    Incorporate updated powerplant classes when available.
  236. •    A few _minor_ speed improvements are still possible.
  237. •    Perhaps switch to using WASTE, instead of TextEdit (memory impact?).
  238.  
  239. Any offers for help or suggestions for improvements much appreciated --- in 
  240. particular if someone wants to get to work on the to-do's, that'd be great.
  241. If you have example code which does something similar to any of the to-do's
  242. (e.g. asynchronous file i/o), and you're happy to let me use it as a 
  243. template, then please send me it!
  244.  
  245. ------
  246.  
  247. Sources:
  248.  
  249. I'm no longer distributing the sources, since it seems a bit needless, but
  250. if you actually want them, just ask.  
  251.  
  252. Based on the C code of the original MacBibTeX (0.99c) which I grabbed from 
  253. CTAN, and code generously donated by Rick Zaccone from his 'Makeindex'.  
  254. Icon adapted from one I grabbed off a folder from some collection on the 
  255. net.  'IC++' written by Dan Crevier is used for the about box links.  I 
  256. also use LBalloonTracker by Paul Lalonde which is © 1996 Corporate Software 
  257. & Technologies Int.  Inc.  (CS&T), and very convenient.  Many thanks!
  258.  
  259. ------
  260.  
  261. Compilation (with CodeWarrior 11):
  262.  
  263. Obtain the library 'MoreFiles' (preferably version 1.4.5 or newer), which
  264. should be available from the info-mac archives.
  265.  
  266. •    Open the source code folder
  267. •    Compile BibTeX68k.µ
  268. •    Compile BibTeXPPC.µ
  269.  
  270. Move the resulting application "BibTeX" up one level so it can find 'BibTeX 
  271. inputs'.  You may need to adjust the memory allocation (with Get Info), but 
  272. beyond that you're set.
  273.  
  274. -----
  275.  
  276. Personalisation:
  277.  
  278. You can now set BibTeX search paths using the options dialog, but if for 
  279. some peculiar reason you want to set more than two different paths, in 
  280. addition to the defaults, then you can do so using ResEdit:
  281.  
  282. You can edit a string resource with ResEdit to specify your own search 
  283. path.  To do this open the app with ResEdit and look at the STR# resource 
  284. called "Path".  You can add entries which look like this:
  285. '2:Hard Disk:My Search Path:'; the '2' signifies to BibTeX that this is
  286. a complete path specification.  If you prefer, '0:' indicates 
  287. a path relative to the .aux file, and '1:' relative to the BibTeX 
  288. application.
  289.  
  290. ------
  291.  
  292. Version History:
  293.  
  294. 1.1.6    Numerous small improvements and bug-fixes to the 'bibEngine.tcl'
  295.         scripts which handle the receiving end of apple-events from BibTeX.
  296.         Recompiled the application with Codewarrior 11.  Updated to 
  297.         MoreFiles 1.4.5, and MSL C/C++.  Few other minor code improvements.  
  298.         Click-drag scrolling works in the log window now.  Still no 
  299.         drag'n'drop though.  Changed app's memory allocation slightly.  
  300.         After a fatal error, memory is freed immediately now, previously 
  301.         allocations would accumulate until the end of a non-fatal run.  
  302.         Rewrote a few code sections so less of the MSL C library is linked 
  303.         in (reduced code size significantly).  Now use some styled text in 
  304.         the log window.  Improved a couple of error/help messages.  Rewrote
  305.         preferences file code using powerplant rather than a separate, rather
  306.         old library; makes for a much faster startup.
  307.         
  308. 1.1.5    Minor bug-fix in which some sorts of fatal bibtex error would 
  309.         ignore the 'stay open on error' flag.  Slight improvements to 
  310.         interaction with Alpha, and minor additions to the log file on some 
  311.         fatal errors.  Increased global strings to 15 (so it works with 
  312.         the indxcite package now).
  313.  
  314. 1.1.4    Copes with filenames containing spaces.  Remember if you use
  315.         spaces, your files will not work on other platforms.  Fixed a 
  316.         minor buffer-overflow problem in which not all warnings would
  317.         be given in the log window.  Added command-clicking features
  318.         to the log window (very useful and cool new feature!).  Fixed
  319.         one source of preferences problems (startup with no preferences
  320.         file, quit and restart => default preferences are garbage).
  321.  
  322.         Fixed crashing bug when cmd-clicking at the end of the log window.
  323.         Fixed a couple small GUI buglets.  Added processing time message
  324.         to end of log window.  Command clicking in opened .blg files sends
  325.         correct file information now.  Minor changes to about box, and to
  326.         Tcl scripts for Alpha communication.
  327.  
  328.         Fixed so prefs file has an icon; startup will be slow the first
  329.         time, because BibTeX will have to rewrite your preferences.  
  330.         Added an icon resource for TEXT files which can be used for .blg 
  331.         log files.  Set this up in Internet Config, and you can double 
  332.         click .blg files to launch.  Now you can look at old .blg files and 
  333.         decide if you wish to regenerate them (cmd-G = Go will reprocess 
  334.         the corresponding .aux file), or cmd-click to edit problems using 
  335.         your editor.  Fixed quite old (I think) bug in which you could have 
  336.         two log windows after hitting 'Cancel' in the options dialog.
  337.         Feature change: BibTeX now rejects any text file that's not '.aux' 
  338.         or '.blg'; before it would be passed to the core code and of course
  339.         cause errors.  Added more Balloon help.  Feature change: type/creator
  340.         of .blg and .bbl files created are taken from Internet Config if 
  341.         possible, if not then from the .aux file as before.
  342.  
  343. 1.1.3    Really fixed end-of-file problem.  Other minor changes.
  344.  
  345. 1.1.2   Fixed setting end-of-files correctly.  I somehow reintroduced this
  346.         bug when I rewrote all the file i/o stuff.  Balloon help in dialogs.
  347.         
  348. 1.1.1    Added options 'Stay open on warning', 'Stay open on error' which
  349.         counter-act the 'Quit when finished' option, and leave BibTeX
  350.         open if anything went wrong.
  351.         Fixed the 'text-jumping' visual bug in the log window (thanks
  352.         to a helpful soul on comp.sys.mac.programmer.codewarrior).
  353.         Updated to MoreFiles 1.4.3.
  354.         Preferences file now has its version number updated if necessary
  355.         when you start BibTeX, and I always create a preferences file now,
  356.         and any old preferences are updated with any new options.
  357.         This fixes an old 'bug' in which BibTeX would take a long time
  358.         starting up, because it's looking for a preferences file, or
  359.         trying to read information from it which doesn't exist.
  360.         Fixed a subtle 68k only bug which has been around for a long time,
  361.         but only now reared its head --- caused horrible crashes on 68k
  362.         machines, somewhat randomly since useful memory was being 
  363.         over-written.  However it's fixed now.
  364.         Fixed a small bug introduced in 1.10, which would show up only
  365.         after multiple runs, especially after a fatal error, and could 
  366.         result in a crash.
  367.         Added message to the log window after a fatal error.
  368.         
  369. 1.1.0    Did some serious profiling and optimisation.  Opening files is
  370.         really rather slow on MacOS, probably due to the emulated nature
  371.         of the file-system.
  372.         Now about 10+ times faster than 1.06.  Rough timing is as follows:
  373.         v1.06 75secs, v1.07 62secs, v1.10 7secs
  374.         (All using Speed Doubler on a 5300cs on a large BibTeX run) 
  375.         Huge rewrite of all the IO code: uses PowerPlant buffered IO classes,
  376.         which makes everything rather simpler, and on the whole a lot faster.
  377.         The code is much, much cleaner now, as I've cleared out a lot of the
  378.         old vestiges of MakeIndex and the ancient web2c source code has been
  379.         modernised.  Therefore the BibTeX <-> Interface links are simple now.
  380.         Added option to monopolise the CPU.
  381.         Significant interface improvements:
  382.         You can now set two folders to search in the options dialog box,
  383.         (but the old technique of using Resedit still works).  Note that
  384.         by default BibTeX now searches in:
  385.         • The same folder as the '.aux' file being processed.
  386.         • The folder 'BibTeX inputs' located wherever the BibTeX application
  387.         resides on your hard drive.
  388.         • Any folders you add manually using ResEdit (not normally necessary)
  389.         • The two folders you specify in your preferences.
  390.         Added links from the 'about box' to the BibTeX web-page, and to
  391.         mail me, etc.
  392.         Recompiled using Codewarrior 10
  393. 1.07    (Never released publicly)
  394.         Significant internal changes:
  395.         (i) Speed increases. 
  396.         (ii) Increased sizes of things for 'Big' mode.  This version of BibTeX
  397.         should support Camel (the up-and-coming LaTeX 2e bibliography system).
  398.         (iii) Added a couple of options which were requested: 
  399.         'beep when finished' and 'no log window'.
  400. 1.06    Now copes with extended character set 'üöé...'.  Not all TeX
  401.         implementations allow them, but if you pass one to BibTeX, it
  402.         will happily output it, assuming your version of TeX can cope.
  403.         Changed name of log window.
  404. 1.05    Recompiled with CW9, updated to take account of Powerplant
  405.         changes.  Cosmetic change when selecting 'go' to re-run
  406.         a file - the window is now cleared first.
  407. 1.04    Minor (non-fatal) bug fixes --- all files properly closed and 
  408.         flushed after a bibtex error, file eof's set correctly for .bbl 
  409.         and .blg files.
  410.         Thanks for the bug reports!
  411. 1.03    Minor changes --- it now gives a message 'BibTeX run complete.'
  412.         in the log window, rather than just finishing.  Documentation
  413.         update.  I've fixed the FREF/BNDL problems, so drag'n'drop
  414.         really should work now ;-)
  415. 1.02    Switchable between Big and Small.  Uses new memory allocation
  416.         scheme from Rick, so temporary memory is used rather than the
  417.         system heap.  This means the application's given partition can
  418.         be much smaller (300k works for me). Added fref 'TEXT' resource
  419.         which was missing previously (so drag and drop will work under
  420.         all circumstances now).
  421. 1.01    Copes with Unix as well as Mac EOL characters
  422. 1.0        Original; soon to be distributed with OzTeX 2.0
  423.